跳到主要内容

第八期:扩展 NAS 之图书管理

我们在第三期中,介绍了照片、音频、视频的管理套件,也介绍了 Docker 安装插件的方法。

这些插件能实现大部分需求,也有一些功能是官方套件覆盖不到的,比如这一期要讲的图书管理,如何把各种格式的图书方便地管理起来,就需要用到一款名为 Calibre-Web 的 Docker 插件。

这一期的主要内容,就是如何用 Docker + Calibre-Web 实现图书管理。

在这一安装过程中,需要用到前面几章的知识:利用 Docker 安装插件、新装插件的配置、服务端与本地端同步以配合使用。很适合作为教程来讲解,学会举一反三,安装其他插件也不在话下。

为什么用 Calibre 管理图书

Calibre 是一款本地图书管理工具,而 Calibre-Web 是一款基于前者数据库拓展的网页端套件,两者功能和用途有所区别。但它们的共同目的都是帮助你管理好电子书。

https://cdn.sspai.com/2020/12/31/03c030738691cce576286f1ac0377681.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

Calibre 与 Calibre-Web

使用 Calibre 最大的原因在于图书平台的分散,Kindle、多看阅读、微信读书、掌阅……而且这些图书平台并不开放书库,大多数情况下只能在 App 内阅读。这一点和视频 App 的情况是类似的。Calibre 能将电子书统一到一处,并方便地转换为各种格式,能在各种设备和阅读器上阅读。

在开始为 NAS 安装 Calibre-Web 之前,你需要先在电脑上安装 Calibre,并将 Calibre 本地书库同步到 NAS,再基于 NAS 中的数据库安装 Calibre-Web。

获取豆瓣元数据

Calibre 能够自动抓取豆瓣图书的元数据信息,包括图书的作者、出版日期、介绍、评分以及封面,并自动将元数据关联到图书上。除了豆瓣,也支持 Amazon.com、Google、Open Library 等元数据下载源,这些源中的英文书籍比较多。Calibre-Web 同样支持获取豆瓣元数据。

https://cdn.sspai.com/2020/12/31/5275436ec9a8cc605ac22a711ab9f1e9.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

获取元数据

电子书转格式与排版

不同来源的电子书可能有不同的文件格式,它们在不同设备上也有不同的表现。比如 TXT 和 PDF 格式在 Kindle 上显示效果不好,你可以尝试用 Calibre 将其转换为 Epub 或 Mobi 等格式增强兼容性。

此外,Calibre 还能进行发送到 Kindle、图书分类、管理评分等各种操作,是一个非常全能的图书管理工具。有关 Calibre 的更多介绍和使用技巧,可以参考这些文章:

而 Calibre-Web 在分享方面更胜一筹,本身就是网页端,比桌面端更易于分享和远程下载图书;通过 OPDS 功能,可以在支持 OPDS 的客户端中快速获取图书信息和文件;通过在线发送到 Kindle 等功能快速下载图书。

Calibre 和 Calibre-Web 的关系

这里简单说明一下 Calibre 和 Calibre-Web 的关系:

  • Calibre 作为一款本地图书管理工具,脱离 Calibre-Web 也能正常运行。能够轻松导入各种格式的图书,并进行格式转换、填充元数据等管理,包括 MOBI、EPUB、TXT、PDF 等主流格式。
  • Calibre-Web 则是一款用于展示和下载的第三方插件,提供网页端界面。与 Calibre 的开发商关系不大,但由于用到了 Calibre 的数据库文件,因此必须先有前者才能使用。

Calibre-Web 能够在线读取 Calibre 的数据库和图书,从而提供在线阅读、在线下载等服务,还能实现邮件发送到 Kindle 等操作。主要特点在于服务运行在 Web 端,让手机、平板、Kindle 等不支持 Calibre 的设备也能远程访问自己的书库。这一项目是由 Janeczku 发起的,代码在 GitHub 开源。

建立 Calibre 本地书库

绝大多数的应用套件都需要安装服务端与本地客户端。服务端长时间启用,让客户端随时访问,Calibre-Web 也不例外。

https://cdn.sspai.com/2020/12/31/5fcfbca86ba2b156b36144987fb145b5.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

Calibre-Web 主界面

不同于官方套件,Calibre-Web 依附于 Calibre 的数据库,所以需要先在本地用 Calibre 创建书库,自动生成一个 .db 的数据库文件。

本地安装 Calibre 图书管理工具

你可以在 Calibre 的官网下载最新版的客户端,并进行安装。

在 Calibre 中新建书库非常简单,初次打开后点击上方的 Calibre Library,勾选「在新位置创建一个空白书库」,就能在指定位置创建一个空的书库。

https://cdn.sspai.com/2020/12/31/cef861c0f44b78705f75f0c42ed49d34.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

为 Calibre 创建本地书库

创建完毕后,把本地的电子书文件拖拽到 Calibre 的主界面,就能为 Calibre 书库添加图书了。用 Calibre 也可以在 PC 端管理和浏览图书,还能共享到本地局域网内。

但要实现真正的远程访问,还得借助 Calibre-Web 的力量。

通过 Docker 下载 Calibre-Web

Calibre-Web 是安装在 NAS 端的插件,可以通过多种方法安装。

这里我比较建议用 Docker 的方法进行安装,在 NAS 上利用 Docker 安装套件的方法已经在第三期讲过。而在这个流程中更为复杂,还需要涉及到本地 PC 端的文件夹同步、文件夹权限的配置、Docker 的更多配置、千奇百怪的报错与后期维护。本章也会给出具体的操作流程,带大家一步一步完成 Calibre-Web 的安装。

在 NAS 端下载 Calibre-Web 服务

在 Docker 的注册表中搜索 Calibre-web,能找到多个名为 Calibre-Web 的镜像。

  • janeczku/calibre-web:开发者自己发布的 Docker 源,但 Docker 版本已经长期没有更新。配置起来最为简便。
  • technosoft2000/calibre-web:由 Technosoft2000 维护的插件源提供,提供最新版本的 Calibre-Web。
  • linuxserver/calibre-web:由 LinuxServer 维护的插件源提供,提供最新版本的 Calibre-Web。

https://cdn.sspai.com/2020/12/31/391076b17f0a68611441f71ec43c8902.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

安装合适的 Calibre-Web Docker 版本

这几个镜像的内容其实都是 Calibre-Web,/ 前面的内容指的是上传者,所以这几个镜像只是上传者不同,实际上师出同门——都由同一个项目生成。

由于版本不同,在实际配置上比较接近,但仍有些小细节有所不同,比如老版本的 janeczku 的库由于不再更新,功能少一些,网络上相关教程较多,容易配置成功(同样的,功能落后 2 年左右)。而 LinuxServer 版本的最新一次更新在 2020 年 12 月,显然要新很多。

我们现在要安装,当然是以尽可能新的版本为例,这里选择了 LinuxServer 版本

我们先下载 linuxserver/calibre-web 的 Latest 版本。它的配置文档也可以在这个链接中看到。

在 NAS 端建立书库

Calibre-web 的镜像在 400 MB 左右,下载需要花一段时间。在这段等待时间里,我们可以在 NAS 上建立书库文件夹,并为书库文件夹分配权限。

建立书库文件夹

我们可以去「控制面板 - 共享文件夹」中新建一个名为 Books 的共享文件夹。

然后到「File Station」中,点进 Books 目录,新建一个名为 Calibre 的目录。

这样就形成了 /Books/Calibre/ 的目录结构。如果你愿意,也可以改成其他目录,但是不建议用根目录直接作为书库目录,这会产生一些权限方面的问题。

https://cdn.sspai.com/2020/12/31/e24cc6af64e25dffa4f1d12ff3ee268c.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

Calibre-Web 分配本地文件夹

将 db 文件同步到书库文件夹

基础的目录有了,你需要将本地软件 Calibre 书库同步到 /Books/Calibre/ 这个目录下,最重要的结构是 Calibre 书库根目录中的 metadata.db 数据库文件。只有识别到了这个文件,Calibre-Web 才会承认这是一个可识别的书库。

我选用的同步方式是 Synology Drive 的同步模式,并且不开启「按需同步」功能,让书库完整的上传和下载,避免出现 metadata.db 同步错误的情况(因为 db 文件是根据本地书籍情况自动生成的,容易与服务器版本出现冲突)。

  • 具体操作:
    1. 安装 Calibre 并按之前的步骤创建本地书库,并放进一本书,让 Calibre 自动生成 metadata.db 文件。

    2. 打开 Drive Client 客户端(群晖的 PC / macOS 文件同步客户端)。

    3. 将 Calibre 书库文件夹作为一个同步文件夹,同步到 NAS 的 /Books/Calibre/ 目录。

    4. 完成后,进入「同步任务 - 同步规则」,取消勾选「按需同步」选项。

      https://cdn.sspai.com/2020/12/31/9e3afe5b1a43f96c36c6edc8f754422d.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

      取消按需同步

      这种同步方式的好处是稳定不易出错。我之前为了节省本地空间,还尝试过在 NAS 上建立目录,然后用 Calibre 直接访问 WebDAV 中的书库。这样一来空间是节省了,但 Calibre 的加载时间变得异常的慢,批量操作时很容易断开连接导致数据库文件不同步,因此不推荐使用 WebDAV 直接连接 NAS 端书库的方法。而 SMB 的同步机制比 WebDAV 更适合做这种同步,如果你对自家局域网速度有足够的自信,通过 SMB 服务来管理书库是一种可行的方案。

      如果电脑本地空间实在不够也没事,Calibre-web 支持在线上传图书。你只需要建一个含有一本书的 metadata.db 数据库并放到 /Books/Calibre/ 目录下就可以了。

分配书库权限

很多人在配置 Docker 时出现错误,很大一部分原因在于文件夹权限没有设置好。NAS 的权限管理机制很严格,除了前面提到的 Administrators 管理员组权限和 Users 用户组权限,还有一种特殊的权限组:Http 权限组。

Calibre-Web 不属于用户,但它也需要访问到书库文件夹,这样才能提供相应的服务。这类服务都可以归类到 Http 权限组。有点类似于 iOS 上初次打开应用时的弹窗「是否允许获取摄像头权限」,只有同意才能完成下一步操作。

所以我们需要为书库文件夹配置网页可以访问的权限。

  • 具体操作:
    1. 在「控制面板 - 共享文件夹」中,右键共享文件夹 books,在「books - 权限」选项卡中,给 http 用户组权限勾选「可读写」权限,同时「应用到这个文件夹、子文件夹及文件」。

    2. 右键 Calibre 目录,在「属性 - 常规」选项卡中,检查 Http 用户组有没有已读权限。

    3. 如果第二步中是灰色,点击「高级选项 - 使继承权限显式化」,就可以修改了。

      https://cdn.sspai.com/2020/12/31/9379dbcb539c6d856b383b53d086a554.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

      配置成员权限

      通常来说,做到这一步就已经完成了权限的配置。不过也有一些特殊的情况。

    • 如果你曾经在套件中心中,利用这一文件夹使用过 COPS 等书库服务,这一文件夹「拥有者」可能会变成 root,需要手动修改为当前登录的用户,并且应用到子文件夹。
    • 如果在后续步骤中报错,可以在「控制面板 - 用户群组」的 http 用户组「编辑 - 权限」,将 Books 目录和 Docker 目录的权限改成可读写。再尝试一次。

在 Docker 里安装 Calibre Web

本地的部分完成后,就可以开始在 Docker 中安装 Calibre-Web 了。

刚刚下载好的 linuxserver/calibre-web 镜像会显示在「Docker - 映像」中,双击这一镜像就会开始「创建容器」。

这一步中需要给这个容器取一个名字,名字不影响使用,看得懂即可。重要的是下方的「高级设置」。

  • 具体操作:
    1. 进入高级设置,需要对「卷」和「网络」进行配置。

    2. 在「卷」中添加一个文件夹,选择刚刚存放 metadata.db 的 Calibre 书库目录,点击确定。「文件/文件夹」这一栏会被自动填写为 Books/Calibre

    3. 在「装载路径」一栏中填写 /books/ ,其中第一个 / 不能省略。「文件/文件夹」和「装载路径」分别代表本地的目录、Docker 中的目录。作用是让 Docker 能够读写本地的文件。

    4. 在端口设置中,分别设置本地端口和容器端口为 8083 和 8083 ,这样能让外部通过 8083 访问到书库服务。

      本地端口容器端口类型
      80838083TCP

      注意,如果你用的是 janeczku/calibre-web 这一版本的 Docker,开发者已经将容器端口设置为最常用的 80 和 443 端口,所以应该按如下表格配置。

      本地端口容器端口类型
      8084443TCP
      808380TCP

      这些端口号都是从哪里来的呢?我是如何知道这么配置的?

      因为每个成熟的镜像都有详尽的文档,在每一个镜像的名称右侧都能访问到它的配置文档。哪怕同是一个内容的不同镜像,不同的发布者也可能为其分配不同的参数、路径、端口号。这些文档可能各不相同,但基本都会告诉你端口和必要的参数。

      https://cdn.sspai.com/2020/12/31/731a53a24188324b9356f521f462cb08.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

      Calibre-Web Docker 版本介绍

      比如根据 linuxserver/calibre-web 的文档,端口号是 8083,那就应该将容器端口设置为 8083,本地端口则可以随意设置(如 8333),那就在访问时使用 192.168.1.188:8333 这样的链接来访问它。但为了便于识别,我还是建议直接用对应的端口 8083 来访问,这样出现问题也容易排查。

      所以,最实用的 Dockers 套件安装教程,其实就在开发者提供的文档中。

对 Calibre Web 进行配置

配置完毕后,就通过镜像生成了一个容器,启动 Calibre-Web 容器。稍等一会儿,容器的 CPU 占用率会逐渐下降。说明此时已经启动完成了。

此时可以尝试访问 NAS 的内网 IP:8083 (如 192.168.1.188:8083),就可以进入到 Calibre-Web 的初次配置界面了。

https://cdn.sspai.com/2020/12/31/13e00e035e7ff5031279b3fc8c2a8e47.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

Calibre-Web 配置界面

初次配置注意点

初次配置界面中,Calibre 的数据库位置应该与上方保持一致,填写为 /books/。其他设置都保持默认值不变,直接点击最下方的「下一步」,看看能否直接进入。

  • 如果这一步能够直接进入书库登录界面,说明配置无误。
  • 如果这一步无法进入书库登录界面,而是弹出一些提示,那就需要逐一排查问题所在。

问题排查

问题一:出现错误提示 DB location is not valid, please enter correct path。说明数据库不存在,或者在权限分配时没能正确配置,导致 Calibre-web 访问不到数据库文件。

解决方法:回到上面的「建立书库」这部分,重新一步一步地建立书库,并正确分配书库权限。

实际上 Calibre-web 是可以自动新建一个数据库的,但如果路径配置不正确,可能会建立失败或者无法建立在正确的位置,所以我还是推荐你在本地先创建一个空白的 .db 书库放进去,并且及早将同步到本地,方便日后在本地批量管理书库。(Calibre-Web 的批量管理功能不如 Calibre 本地版)

https://cdn.sspai.com/2020/12/31/dbec268b456d23a294aaca3ccda8ab21.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

Calibre-Web 报错提醒

问题二:出现错误提示 Internal Server Error,详细信息为 The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.,如何解决?

解决方法:这个问题出现在 Calibre-web 早期版本,据我了解,janeczku/calibre-web 这一镜像有概率出现这一问题。具体原因可能出现在镜像底层的 flask 框架上。作为使用者是无法解决这一问题的。如果不幸遇上了这个问题,你可以尝试重新生成一个 .db 数据库并同步上去,然后重启容器试试。如果还是不行,就只能更换镜像了。

好在这一问题很少在最新的版本中出现,根据 GitHub 上的相关 Issues 541相关 Issues 61,这一问题已经被开发者解决,安装 LinuxServer 的新版本就能正常使用了。

问题三:无法通过 链接:8083 访问到书库。

解决方法:请先在内网环境下测试,如果内网可以成功访问,再尝试外网环境访问。如果连内网都访问不了,可能需要检查 NAS 是否正确配置了服务。也可能是路由器和防火墙相关的设置出了问题。需要根据「Docker - 容器 - 日志」中的情况具体分析问题原因。

问题四:Wrong Username or Password。

解决方法:初次使用时,应当使用 Calibre-web 的默认账户登录。不要使用密码自动填充,避免和 NAS 密码混淆。Calibre-web 的账号密码与 NAS 的密码完全是两回事。

Calibre-Web 的基本使用

成功安装完毕后,Calibre-Web 的基础使用比较简单,需要做的操作集中在对系统的维护。

默认登录账号和密码

Calibre-web 的默认账户是 admin,默认密码是 admin123

登陆后记得修改 admin 账户的密码。也可以将界面设置为中文语言。

https://cdn.sspai.com/2020/12/31/4b308a8b15a5cd82f7e3c303bd60663c.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

Calibre-Web 后台设置

下载和阅读图书

登录成功后,Calibre-Web 最基础的功能就是下载图书和在线阅读图书。

点开一本图书后,上方会显示「下载」和这本图书的格式,点击格式就能下载对应的图书。

旁边的在线浏览需要格式支持,我比较推荐的图书格式是 Epub 格式,它作为通用格式,能够很好地兼容不同设备,便于同步,排版优美,文件大小适中。这些是 TXT、MOBI 等其他格式不具备的特点。

另一个电子书的派系是 PDF,扫描版的 PDF 文件体积通常比较大,且不适合手机端浏览,一大堆上百 MB 的电子书放在这里还是比较占空间的,书库的体积会急速膨胀。

分配账户和权限

Calibre-web 的后台管理中可以分配新的账户,账户的权限包含这几个重要功能——

  • Send to Kindle 邮箱:每个账户都可以设置一个 Kindle 邮箱,这样就能将图书发送到自己的 Kindle。如果没有 Kindle 也可以填写其他邮箱,便于将图书发送到邮箱。
  • 语言设置:每个账户都能设置自己的语言,默认是英文。
  • 管理用户:管理员的权限,建议只保留给一人管理员权限,不要分配给其他用户。
  • 允许下载、允许 eBook Viewer:分别是下载图书和在线阅读,这两个是 Calibre-Web 的主要功能,建议都打开。
  • 允许上传:建议允许信任的用户上传图书,你可以把整理好的 Word、PDF 等书籍资料上传到 Calibre-web 里。

其他的选项都很容易理解,逐一配置就可以了。

https://cdn.sspai.com/2020/12/31/e299962c4c5d543739d22ba2830d1999.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

分配用户权限

发送到 Kindle 的设置

如果想一键发送到 Kindle,还需要配置一个能发送邮件的邮箱。同样是在设置界面进行设置。

点击「修改 SMTP 设置」,根据邮箱服务商的要求进行发件配置。这里给出一些常见邮箱的 SMTP 服务器地址。其中 QQ 邮箱可能需要使用独立密码进行配置,建议使用 Outlook 邮箱,限制会少一些。

邮箱POP3 服务器(端口)SMTP 服务器(端口465或587)加密方法
QQ 邮箱pop.qq.com (995)smtp.qq.com(25)-
Outlook 邮箱outlook.office365.com(995)smtp.office365.com(587)STARTTLS
Gmail 邮箱pop.gmail.com(995)smtp.gmail.com(587)SSL
126 邮箱pop.126.com(110)smtp.126.com(25)-

配置完毕后可以发送一封测试邮件到当前账号设置的 Kindle 邮箱。

切换为黑色主题

在「管理 - 修改界面配置 - 查看配置 - 主题」中,可以将主题修改为 caliBlur! Dark Theme 来启用黑暗模式,和原本的风格有很大的变化。可以根据自己的喜好进行调整。

https://cdn.sspai.com/2020/12/31/c60a9aceb6dcfdeb9a9f0faa291bbffd.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

Calibre-Web 配置黑暗主题

Calibre-Web 的管理方法

Calibre-Web 的管理分为几个部分,添加图书、管理图书、删除图书。通常可以采用在线和本地同步两种方法实现。总的来说,本地版的功能要远远比 Web 端丰富,但 Web 端胜在便捷,因此可以同时使用,怎么方便怎么来。

但就像前面说的,Calibre 的本地版需要将整个书库同步到本地才能管理,不能使用按需下载和 WebDAV 等折中的方法。电脑空间小的朋友可以用移动硬盘作为本地书库的同步目录,否则还是建议用 Calibre-Web。

我的建议是在线单本修改图书,本地批量管理图书。这样能够发挥平台优势,对图书进行快速管理。这里将本地版简称为 Calibre。

手动上传图书

Calibre-Web 支持手动上传数十种格式的图书,我们熟悉的 Docx、PDF、HTML、EPUB、AZW3、TXT 等格式都可以通过这种方式上传。也允许批量上传,只是耗时稍久一些。上传完毕后会帮你筛选出已添加过的书籍,告诉你添加失败。

https://cdn.sspai.com/2020/12/31/d48b32eb8a129a4ea1a7b47e7394f47d.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

上传图书

Calibre 同样支持批量添加图书,添加后自动上传,Calibre-Web 端自动更新。如果你下载了大量的电子书,可以通过 Calibre 添加图书,并自动填充元数据。即便是找不到元数据,也能自动批量生成封面。因此我更推荐用 Calibre 来批量添加图书。

自动填充元数据

Calibre-Web 中的添加元数据功能时不时会出一些小问题,修改失败、找不到文件、无法获取信息都是家常便饭。而且只能一次一本地添加,效率不高。这部分工作也交给 Calibre 完成。

具体操作:

  1. 在 Calibre 中选中图书,右键 - 编辑元数据 - 下载元数据和封面。
  2. 在弹出窗口中继续点击「下载元数据与封面」,下载就会开始。
  3. 等待下载任务完成后,会弹出提示是否更新元数据,点击「是」,就会自动填充书籍信息和封面。

https://cdn.sspai.com/2020/12/31/cea5d2b9917a65d9558348af3c804f96.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

添加元数据

如果你的书本收藏大多是中文书,点击「配置下载参数」,则可以更换数据源为豆瓣。同时可以把 Google 等来源禁用,并减少最大等待时间,这样可以大大提高封面和文字的检索效率。

https://cdn.sspai.com/2020/12/31/0a27fc6649b49f299b7dc167c068854c.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

添加元数据

如果你发现现有版本的 Calibre 从豆瓣抓取元数据失败,可以尝试更新 Calibre 或者重新下载 Douban 插件解决。

https://cdn.sspai.com/2020/12/31/9c43778cc4195c84f338a758735c2cd3.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

元数据下载

如何将本地图书同步到云端

这一点在上面已经讲过了,我折腾之后发现,最省心的办法就是通过 Synology Drive 对 Books 进行完整的实时同步。对 metadata.db 产生的影响最小、最稳定。

在后续维护时,如果需要更新图书,我也建议一次性多收集一些电子书,然后向 Calibre 导入、添加封面和元数据。最后由 Drive 自动同步到 NAS 中。

阅读工具推荐

Calibre-Web 完成安装之后,你就可以在任意设备上访问了。甚至 Kindle 也能用内置浏览器打开。由于书库是 Calibre-Web 的存储形式,因此不需要全局同步下来。当你想看书的时候,到 Calibre-Web 的网页版下载一些即可。如果阅读器支持 OPDS 书库,也可以通过 OPDS 的方式进行连接。

本地阅读器推荐

EPub 格式兼容性比较强,在各种设备上都有 App 支持,各种分辨率下的文字图片显示体验较好,不容易丢失排版,因此我通常将各种格式的书籍转为 Epub 格式(纯图片格式的 PDF 除外)。所以我这里也推荐一些支持 EPub 的阅读工具。

iOS 的本地阅读器可以选择 Kybook 3Marvin 3 等本地阅读器。在未安装 Calibre-Web 时可以直接用 WebDAV 同步。安装 Calibre-Web 后,可以利用 OPDS 功能添加书库。

https://cdn.sspai.com/2020/12/31/79852f13059bb054305ebcde4419d87b.jpg?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

iOS 本地阅读器

Android 的本地阅读器可以选择 LithiumReadEraMoon+ Reader 等,其中 Moon+ Reader 支持 OPDS。

https://cdn.sspai.com/2020/12/31/8372a4b1667d771738033909e7009386.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

Android 本地阅读器

PC 端的本地阅读器则可以选择 Calibre 自带的 E-Book Viewer,界面一般,但胜在支持的格式众多,可自定义程度也很高。也可以选择 SumatraStarrea 等阅读器。

macOS 则首选图书 App(即 Books,系统自带阅读工具),此外同样也有 Calibre 自带阅读器、Adobe 的 Digital EditionsFBReader 等可用。

阅读进度多端同步的阅读器推荐

如果你需要同步阅读进度,我推荐用多看阅读管理 EPub 书籍。基本完全免费、支持外部导入 EPub、支持跨 iOS、Android 同步自己上传的 EPub 文件,自带小米的书库,为数不多的缺点是不支持桌面端。

如果你需要电脑端也同步书籍和进度,那我推荐 Neat Reader,需要付费开通会员启用云同步功能(10 GB),能够同步书籍、批注、笔记、阅读进度。支持 Windows、macOS、Android、iOS、Web 等平台,主要格式为 EPub,没有自带书库。

https://cdn.sspai.com/2020/12/31/2919e3bf5fff64b130db94dd7a81275f.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

Neat Reader

苹果的 Books 也支持 iCloud 同步,macOS + iOS 用户可以直接使用 Books 作为多端同步的阅读器。

无论是多看阅读、Neat Reader、Books,其实都有云盘空间来限制同步大小。我通常只把正在看或者已经看过的图书进行同步,减少对云空间的损耗。而 Calibre-Web 背后有一整个 NAS 的容量,我可以肆无忌惮地把各处收集来的图书放进 Calibre-Web,随时阅读。

为支持 OPDS 的 App 添加书库目录

以 Kybook 3 为例,我们可以在「目录 - 添加」中新增一个 OPDS 目录。需要输入 http://quickconnect.myds.me:8083/opds ,然后输入账号密码(Calibre-Web 的密码,而非 NAS 登录密码),即可无需下载看到书库中存储的各种书籍,并且按 Calibre-Web 中的书籍分类进行显示,体验有点类似 Plex 和 Emby 根据元数据自动分类影片。

https://cdn.sspai.com/2020/12/31/793db538535070ac5c72a49cd85014b3.jpg?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

连接 OPDS

总结

从这一章中不难发现。其实 Docker 的真正搭建流程只占一小部分篇幅,只要明白了怎么设置,设置前后需要做什么,以及搭建完毕后怎么用。其实搭建本身并不存在太大的难度,甚至都不会涉及到一行代码。相比用 SSH 手动安装在 NAS 上的方法,Docker 无疑是安装起来更轻便、使用起来更为稳定的解决方案。

这一章的 Calibre-Web 书库不仅填补了 NAS 图书管理的空白,也完整地给大家带来一次了 Docker 的安装过程,在安装过程中可能会遇到各种各样的阻碍,然后想办法依次解决,最后成功实现安装,这个过程才最接近实际状态。最终的目的,是让你尽可能脱离教程,按照官方文档也能一个人完成服务的安装。

能够在 NAS 上运行的服务有很多,有些是像 Transmission 一样可以独立运行的,也有些是像 Calibre-Web 一样需要配合本地软件和同步等操作联合运行的,还有一些是自带了服务端 + 客户端的。总之软件的各种形式都有,光靠教程按部就班地操作只能完成一种软件的安装,掌握了一套可实践的安装方法才是最重要的。